package qnb._common.tools;

import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.time.temporal.TemporalAdjusters;
import java.util.Date;

public class DateTool {

    /**
     * 格式化Date类型的时间成字符串
     *
     * @param date Date
     * @param format 例 yyyy-MM-dd HH:mm:ss
     * @return String
     */
    final public static String getDate(Date date, String format) {
        if (null == date) {
            return "";
        }
        SimpleDateFormat sdf = new SimpleDateFormat(format);
        return sdf.format(date);
    }
    
    
    /**
     * 实例一个DateTimeFormatter，代表日期
     */
    private final static DateTimeFormatter DF = DateTimeFormatter.ofPattern("yyyy-MM-dd");
    /**
     * 实例一个DateTimeFormatter，代表时间
     */
    private final static DateTimeFormatter TF = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");

    /**
     * 当前月份的开始日到操作日
     * @param format 日期
     * @return  String[] x[0]开始日  x[1]操作日
     */
    public static String[] currentMonth1_N(String format) {
        DateTimeFormatter df = null == format || format.isEmpty() ? DF : DateTimeFormatter.ofPattern(format);
        String[] x = new String[2];
        LocalDate now = LocalDate.now();
        x[0] = now.withDayOfMonth(1).format(df);
        x[1] = now.format(df);
        return x;
    }

    /**
     * 日期当月的开始日与结束日
     * @param format 日期
     * @return   String[] x[0]开始日  x[1]结束日
     */
    public static String[] currentMonth1_End(String format) {
        DateTimeFormatter df = null == format || format.isEmpty() ? DF : DateTimeFormatter.ofPattern(format);
        String[] x = new String[2];
        LocalDate now = LocalDate.now();
        x[0] = now.withDayOfMonth(1).format(df);
        x[1] = now.with(TemporalAdjusters.lastDayOfMonth()).format(df);
        return x;
    }
}
